// 存放的是用户最新的路由规则数组

import { constantRoutes } from '@/router'

// 导入所有的路由规则
import { asyncRoutes } from '@/router'

const state = {
  // 响应式的
  routes: constantRoutes
}

const mutations = {
  setRoutes(state, otherRoutes) {
    state.routes = [...constantRoutes, ...otherRoutes]
  }
}

const getters = {}

const actions = {
  // 封装一个过滤路由规则的action, 希望将来如果你想过滤路由规则, 直接调用action
  // 过滤路由需要: 1.所有的动态路由  2.menus
  filterRoutes(context, menus) {
    console.log(asyncRoutes, menus)
    // 判断条件: 如果路由模块的默认页路由规则name 在menus中存在, 这个权限他有, 路由规则得留下来
    const res = asyncRoutes.filter(item => menus.includes(item.children[0].name))
    // console.log(res)
    context.commit('setRoutes', res)

    return res
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  getters,
  actions
}
